/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cronus.client;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;

/**
 *
 * @author mark
 */
public class MRechten extends JFrame implements ActionListener {
    
    private JButton rechten = new JButton("Rechten");
    private JFrame frame = new JFrame();
    
    private DefaultListModel dlm = new DefaultListModel();
    private JList lijst = new JList(dlm);
    private String tekst = "";
    
    //namen voor de knoppen op de dialog
    Object[] options = {"Gebruiker", "Beheerder"};
    private JOptionPane optionpane = new JOptionPane(options);
    
    private JMenuBar menubar = new JMenuBar();
    private JMenu help = new JMenu("Helpfunctie");
    private JMenuItem helpfunctie = new JMenuItem("Uitleg");
    
    public MRechten(){
        
        menubar.add(help);
        help.add(helpfunctie);
        helpfunctie.addActionListener(this);
        setJMenuBar( menubar );
        
        setLayout(new FlowLayout());
        setSize(200,200);
        setDefaultCloseOperation(HIDE_ON_CLOSE);
        //setResizable(false);
        setVisible(true);
        setTitle("Toekennen rechten");
        
        lijst.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        
        
        rechten.addActionListener(this);
        
        SocketConnection socketcon = new SocketConnection();
            
            String query = "SELECT email From inloggegevens";
            
            socketcon.send(query);
            
            Object[][] uitkomst = socketcon.read();
            
            for(Object[] ao : uitkomst){
                for(Object o : ao ){
                    tekst = "" + (o.toString());
                    dlm.addElement(tekst);
                }
            }

                add(this.lijst);
                add(this.rechten);
        
    }
    

    public void actionPerformed(ActionEvent e){
        //geeft de items die geselecteerd zijn
        int[] selectedIx = lijst.getSelectedIndices();   
        
        if (e.getSource() == rechten){
            //Koppelt de geselecteerde indexes aan namen uit de lijst.
            for (int i=0; i<selectedIx.length; i++) {
                Object sel = lijst.getModel().getElementAt(selectedIx[i]);
                //opent dialog.
                add(this.optionpane);
                
                int answer =
                JOptionPane.showOptionDialog(frame, "Welke rechten wilt u aan " + sel + " geven?", "Toekennen rechten",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
            
                if (answer == JOptionPane.YES_OPTION){
                            SocketConnection socketcon = new SocketConnection();
            
                            String q = "UPDATE inloggegevens SET admin='false' where email ='" + sel + "'";
            
                            socketcon.send(q);
                            
                    JOptionPane.showMessageDialog(null,sel + " is gebruiker","Geslaagd",JOptionPane.INFORMATION_MESSAGE);
                }
                    else if (answer == JOptionPane.NO_OPTION){
                        SocketConnection socketcon = new SocketConnection();
            
                        String q = "UPDATE inloggegevens SET admin='true' where email ='" + sel + "'";

                        socketcon.send(q);
                        
                    JOptionPane.showMessageDialog(null,sel + " is beheerder","Geslaagd",JOptionPane.INFORMATION_MESSAGE);
                    }
            }

        }
            else if (e.getSource() == helpfunctie){
                //Maak een nieuw HelpScreen aan
                HelpScreen usermanualscreen = new HelpScreen("svn\\Cronus Client\\toekennen_rechten.txt");
                //Declareer het formaat van dit scherm
                usermanualscreen.setSize(640, 480);
                //Maak het scherm zichtbaar
                usermanualscreen.setVisible(true);
            }
    }
}
